Enterprise software applications are increasingly using technology for performing operating-system-level virtualization (i.e., “containerization”) associated with managing various applications providing microservices (e.g., single-function modules with well-defined interfaces and operations) in a networked computing environment. For example, DOCKER container technology may be utilized with applications based on a microservice architecture to run software packages called “containers” created from images specifying their precise contents. Containers may be isolated from each other and bundle their own tools, libraries, and configuration files. In a microservice architecture, container technology may allow applications to automatically perform configuration and management operations when started in a container with appropriate resources such as storage, etc.
Unfortunately, while traditional container technology confers a number of benefits for applications based on a microservice architecture, this same technology presents a number of challenges when applied to enterprise applications based on other service-oriented architectures, such as macro-services. For example, these enterprise applications may often be composed of multiple services and/or roles requiring a high level of user interaction for performing configuration and management operations, thereby negating the automation of operations associated with containerized microservice applications. Thus, utilizing traditional container technology, an enterprise network backup and recovery application would require user input and special handling for configuring various roles based on different storage options, performing version upgrades, and fulfilling quality of service (QoS) requirements (e.g., how and where to allocate application storage for optimum performance).